package com.reflect;

import java.lang.reflect.*;   
/**  
*通过反射创新类的新对象  
*/   
class CreateNewObj    
{   
 //显式默认的构造器   
 public CreateNewObj(){   
 }   
 //重载构造器   
 public CreateNewObj(int a,int b){   
  System.out.println("a= "+a+" b="+b);   
 }   
  
 public static void main(String[] args) throws Exception   
 {   
  //得到本类的类对象   
  Class c=Class.forName("com.reflect.CreateNewObj");   
  //声明构造器的参数类型集合   
  Class []paramTypes=new Class[2];   
  //都为int型   
  paramTypes[0]=Integer.TYPE;   
  paramTypes[1]=Integer.TYPE;   
        //根据参数类型决定得到哪个构造器   
  Constructor cs=c.getConstructor(paramTypes);   
  //声明要传入的参数集合   
  Object []argList=new Object[2];   
  //传入37和43   
  argList[0]=new Integer(37);   
  argList[1]=new Integer(43);   
  //根据符合上述参数类型的构造器来创建新的对象   
  Object rtnObj=cs.newInstance(argList);   
 }   
}   
